package model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ResignExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ResignExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andResignnoIsNull() {
            addCriterion("resignNo is null");
            return (Criteria) this;
        }

        public Criteria andResignnoIsNotNull() {
            addCriterion("resignNo is not null");
            return (Criteria) this;
        }

        public Criteria andResignnoEqualTo(Integer value) {
            addCriterion("resignNo =", value, "resignno");
            return (Criteria) this;
        }

        public Criteria andResignnoNotEqualTo(Integer value) {
            addCriterion("resignNo <>", value, "resignno");
            return (Criteria) this;
        }

        public Criteria andResignnoGreaterThan(Integer value) {
            addCriterion("resignNo >", value, "resignno");
            return (Criteria) this;
        }

        public Criteria andResignnoGreaterThanOrEqualTo(Integer value) {
            addCriterion("resignNo >=", value, "resignno");
            return (Criteria) this;
        }

        public Criteria andResignnoLessThan(Integer value) {
            addCriterion("resignNo <", value, "resignno");
            return (Criteria) this;
        }

        public Criteria andResignnoLessThanOrEqualTo(Integer value) {
            addCriterion("resignNo <=", value, "resignno");
            return (Criteria) this;
        }

        public Criteria andResignnoIn(List<Integer> values) {
            addCriterion("resignNo in", values, "resignno");
            return (Criteria) this;
        }

        public Criteria andResignnoNotIn(List<Integer> values) {
            addCriterion("resignNo not in", values, "resignno");
            return (Criteria) this;
        }

        public Criteria andResignnoBetween(Integer value1, Integer value2) {
            addCriterion("resignNo between", value1, value2, "resignno");
            return (Criteria) this;
        }

        public Criteria andResignnoNotBetween(Integer value1, Integer value2) {
            addCriterion("resignNo not between", value1, value2, "resignno");
            return (Criteria) this;
        }

        public Criteria andResigndateIsNull() {
            addCriterion("resignDate is null");
            return (Criteria) this;
        }

        public Criteria andResigndateIsNotNull() {
            addCriterion("resignDate is not null");
            return (Criteria) this;
        }

        public Criteria andResigndateEqualTo(Date value) {
            addCriterion("resignDate =", value, "resigndate");
            return (Criteria) this;
        }

        public Criteria andResigndateNotEqualTo(Date value) {
            addCriterion("resignDate <>", value, "resigndate");
            return (Criteria) this;
        }

        public Criteria andResigndateGreaterThan(Date value) {
            addCriterion("resignDate >", value, "resigndate");
            return (Criteria) this;
        }

        public Criteria andResigndateGreaterThanOrEqualTo(Date value) {
            addCriterion("resignDate >=", value, "resigndate");
            return (Criteria) this;
        }

        public Criteria andResigndateLessThan(Date value) {
            addCriterion("resignDate <", value, "resigndate");
            return (Criteria) this;
        }

        public Criteria andResigndateLessThanOrEqualTo(Date value) {
            addCriterion("resignDate <=", value, "resigndate");
            return (Criteria) this;
        }

        public Criteria andResigndateIn(List<Date> values) {
            addCriterion("resignDate in", values, "resigndate");
            return (Criteria) this;
        }

        public Criteria andResigndateNotIn(List<Date> values) {
            addCriterion("resignDate not in", values, "resigndate");
            return (Criteria) this;
        }

        public Criteria andResigndateBetween(Date value1, Date value2) {
            addCriterion("resignDate between", value1, value2, "resigndate");
            return (Criteria) this;
        }

        public Criteria andResigndateNotBetween(Date value1, Date value2) {
            addCriterion("resignDate not between", value1, value2, "resigndate");
            return (Criteria) this;
        }

        public Criteria andResignidIsNull() {
            addCriterion("resignID is null");
            return (Criteria) this;
        }

        public Criteria andResignidIsNotNull() {
            addCriterion("resignID is not null");
            return (Criteria) this;
        }

        public Criteria andResignidEqualTo(Integer value) {
            addCriterion("resignID =", value, "resignid");
            return (Criteria) this;
        }

        public Criteria andResignidNotEqualTo(Integer value) {
            addCriterion("resignID <>", value, "resignid");
            return (Criteria) this;
        }

        public Criteria andResignidGreaterThan(Integer value) {
            addCriterion("resignID >", value, "resignid");
            return (Criteria) this;
        }

        public Criteria andResignidGreaterThanOrEqualTo(Integer value) {
            addCriterion("resignID >=", value, "resignid");
            return (Criteria) this;
        }

        public Criteria andResignidLessThan(Integer value) {
            addCriterion("resignID <", value, "resignid");
            return (Criteria) this;
        }

        public Criteria andResignidLessThanOrEqualTo(Integer value) {
            addCriterion("resignID <=", value, "resignid");
            return (Criteria) this;
        }

        public Criteria andResignidIn(List<Integer> values) {
            addCriterion("resignID in", values, "resignid");
            return (Criteria) this;
        }

        public Criteria andResignidNotIn(List<Integer> values) {
            addCriterion("resignID not in", values, "resignid");
            return (Criteria) this;
        }

        public Criteria andResignidBetween(Integer value1, Integer value2) {
            addCriterion("resignID between", value1, value2, "resignid");
            return (Criteria) this;
        }

        public Criteria andResignidNotBetween(Integer value1, Integer value2) {
            addCriterion("resignID not between", value1, value2, "resignid");
            return (Criteria) this;
        }

        public Criteria andResigncauseIsNull() {
            addCriterion("resignCause is null");
            return (Criteria) this;
        }

        public Criteria andResigncauseIsNotNull() {
            addCriterion("resignCause is not null");
            return (Criteria) this;
        }

        public Criteria andResigncauseEqualTo(String value) {
            addCriterion("resignCause =", value, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseNotEqualTo(String value) {
            addCriterion("resignCause <>", value, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseGreaterThan(String value) {
            addCriterion("resignCause >", value, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseGreaterThanOrEqualTo(String value) {
            addCriterion("resignCause >=", value, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseLessThan(String value) {
            addCriterion("resignCause <", value, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseLessThanOrEqualTo(String value) {
            addCriterion("resignCause <=", value, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseLike(String value) {
            addCriterion("resignCause like", value, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseNotLike(String value) {
            addCriterion("resignCause not like", value, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseIn(List<String> values) {
            addCriterion("resignCause in", values, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseNotIn(List<String> values) {
            addCriterion("resignCause not in", values, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseBetween(String value1, String value2) {
            addCriterion("resignCause between", value1, value2, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResigncauseNotBetween(String value1, String value2) {
            addCriterion("resignCause not between", value1, value2, "resigncause");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanIsNull() {
            addCriterion("resignHandleMan is null");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanIsNotNull() {
            addCriterion("resignHandleMan is not null");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanEqualTo(String value) {
            addCriterion("resignHandleMan =", value, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanNotEqualTo(String value) {
            addCriterion("resignHandleMan <>", value, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanGreaterThan(String value) {
            addCriterion("resignHandleMan >", value, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanGreaterThanOrEqualTo(String value) {
            addCriterion("resignHandleMan >=", value, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanLessThan(String value) {
            addCriterion("resignHandleMan <", value, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanLessThanOrEqualTo(String value) {
            addCriterion("resignHandleMan <=", value, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanLike(String value) {
            addCriterion("resignHandleMan like", value, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanNotLike(String value) {
            addCriterion("resignHandleMan not like", value, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanIn(List<String> values) {
            addCriterion("resignHandleMan in", values, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanNotIn(List<String> values) {
            addCriterion("resignHandleMan not in", values, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanBetween(String value1, String value2) {
            addCriterion("resignHandleMan between", value1, value2, "resignhandleman");
            return (Criteria) this;
        }

        public Criteria andResignhandlemanNotBetween(String value1, String value2) {
            addCriterion("resignHandleMan not between", value1, value2, "resignhandleman");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}